1
สถาปัตยกรรมภายใน: ตัวชี้ไปยังคลาสและตัวชี้ไปยังแม่
AI035Lesson 14
00:00

ที่ระดับภาษาซี วัตถุของรูบีจะถูกแสดงด้วยโครงสร้างที่แยกแยะระหว่าง ข้อมูลกับพฤติกรรม ผ่านโครงสร้างที่ใช้ตัวชี้ (pointer) โดยตัวชี้ klass เชื่อมต่ออินสแตนซ์กับคลาสที่เกี่ยวข้อง (ที่ที่เมธอดอยู่) ในขณะที่ตัวชี้ super เชื่อมต่อคลาสกับบรรพบุรุษของมัน สร้างแผนที่ทางโครงสร้างที่เครื่องเสมือนรูบีใช้ในการแก้ไขความสัมพันธ์การสืบทอด

1. ตัวชี้คลาสและแฟล็ก

วัตถุรูบีทุกตัวมีหัวข้อที่ประกอบด้วยตัวชี้ klass และรหัสบิตของ แฟล็กแฟล็กเหล่านี้ระบุสถานะภายในของวัตถุ เช่น การติดฉลากคลาสเสมือน (คลาสที่สร้างอัตโนมัติ) ด้วย 'V' เพื่อจัดการกับการกำหนดเมธอดแบบซิงเกิลตอน

2. การแยกสถานะ (รูปที่ 24.1)

อินสแตนซ์เช่น lucille เก็บข้อมูลเฉพาะตัวของตนเอง ตัวแปรอินสแตนซ์แต่ไม่มีเมธอดของตัวเอง ตัวชี้ klass จะชี้ไปยังตารางเมธอดของวัตถุคลาส Guitar ของคลาส

lucille@valueคลาส: Guitarเล่น()สาย()Vคลาส: วัตถุจำลอง(), สำเนา()klasssuper

3. ห่วงโซ่การสืบทอด

เมื่อ lucille.le่น() ถูกเรียกใช้งาน รูบีจะใช้ตัวชี้ klass หากไม่พบเมธอดใน Guitarมันจะใช้ตัวชี้ super ไปยัง วัตถุทำให้สามารถเข้าถึง จำลอง หรือ สำเนา.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>